Data compression is used to save data storage space on magnetic tapes. See "What's Keeping Data Compression Off Disks?", Computer Technology Review, Dec. 1990, pp. 26 and 28, and "Data Compression's Not the Whole Answer", Computer Technology Review, Mar. 1991, pp. 30 and 32.
These articles discuss data compression for peripheral storage units. Data compression units are connected in an "inline" mode or in a "look aside" mode with an error correcting code (ECC) co-processor. See also the product description for STAC 9703 Data Compression Co-Processor, STAC Electronics, 5993 Avenida, Encinas, Carlsbad, Calif. 92008; Data Compression Algorithm Performance Comparison, Robert Monsour, Director of Marketing, STAC Electronics, Feb. 20, 1989; and A.H.A. 3101 Data Compression Coprocessor IC, Product Specification, Jul. 16, 1990, Advanced Hardware Architectures, Inc. P.O. Box 9669, Moscow, Id. 83843.
In the architectures discussed in these references, there are two separate buffer memories, one for the ECC unit and one for the data compression unit, each having its own interface.
It is an object of the present invention to provide a new architecture in which the data compression unit and the error correcting code unit share a single buffer memory. Storing ECC and compression information in a single buffer memory reduces systems complexities and part counts. On the other hand, in this new architecture the available memory bandwidth has been reduced, and it is possible that the single buffer interface will become a performance bottleneck in some applications. Memory bandwidth is the product of memory speed times the width of the bus into the memory. Memory speed is a given for the device being used. The width of the input path is reduced when a single buffer interface is used in accordance with the present invention. In these cases it might be desirable to reduce data compression overhead in order to meet memory bandwidth constraints.
It is another object of the present invention to adjust the compression ratio to accommodate memory bandwidth constraints of the single shared buffer memory.
In other situations it is desirable to adjust the data throughput. Sometimes a streaming tape drive is connected to a slow host computer which cannot keep up with the required data rate. In the presence of data compression multiple bytes are required from the host for each byte written to tape. It therefore may be desirable to adjust the compression ratio to match data rates. A streaming tape drive is one which is storing data as fast as it receives it, or is outputting data bytes as fast as they can be processed by the host computer. If the tape drive is outputting, or taking input, faster than the host computer, it is necessary for the drive to stop tape movement, rewind, and begin tape movement again when the host computer is ready. This situation is commonly referred to as "shoe shining". It is a condition to be avoided.
It is another object of the invention to adjust the compression ratio so that the data throughput between the host computer and the tape drive can be matched, i.e., the tape drive can be maintained in a streaming condition.
Small tape drives for writing and reading data stored on 1/4-inch tape cartridges use data compression techniques. DATA COMPRESSION FORMAT FOR 1/4"-INCH DATA CARTRIDGE TAPE DRIVES", QIC-122, Rev. B., Feb. 6, 1991, published by Quarter-Inch Cartridge Drive Standards, Inc., 344 E. Carillo Street, Santa Barbara, Calif. 93101 is a development standard for such tape drives. Such tape drives are commonly configured in a personal computer system which includes a host CPU and a controller for the tape drive and other peripherals.